package com.itheima.mapper;

import com.itheima.pojo.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DeptMapper {
    /**
     * 查询所有部门
     * @return
     */
    // @Results结果字段与实体类属性映射
    // @Result 每个结果字段与实体类属性映射, column查询语句中的select后的字段名，property实体类的属性名
    /*@Results({
            @Result(property = "createTime", column = "create_time"),
            @Result(property = "updateTime", column = "update_time")
    })
    @Select("select * from dept")*/
    // 取别名方式
    //@Select("select id,name,create_time createTime, update_time updateTime from dept")
    @Select("select * from dept")
    List<Dept> selectAll();

    /**
     * 通过id删除部门
     * @param id
     * @return 删除的记录数
     */
    @Delete("delete from dept where id=#{id}")
    int deleteById(Integer id);

    /**
     * 添加部门
     * @param dept
     * @return
     */
    @Insert("insert into dept(name,create_time,update_time) values(#{name},#{createTime},#{updateTime})")
    int insert(Dept dept);

    /**
     * 通过id获取部门信息
     * @param id
     * @return
     */
    @Select("select id,name,create_time,update_time from dept where id=#{id}")
    Dept selectById(Integer id);

    @Update("update dept set name=#{name}, update_time=#{updateTime} where id=#{id}")
    int updateById(Dept dept);
}
